package com.xiyu.service.service.infra.devops;
import com.xiyu.service.dal.websocket.customerUpgrade.CustomerUpgradeInput;
import com.xiyu.service.vo.infra.devops.customer.CustomerGetSingleCustomerInfoInput;
import com.xiyu.service.vo.infra.devops.customer.CustomerGetSingleCustomerInfoOutput;
import com.xiyu.service.vo.infra.devops.customer.CustomerGetServerCustomerInfoOutput;
import com.xiyu.service.vo.infra.devops.customer.CustomerGetServerCustomerInfoInput;
import com.xiyu.service.vo.infra.devops.customer.CustomerSingleGetOutput;
import com.xiyu.service.vo.infra.devops.customer.CustomerUpdateInput;
import com.xiyu.service.vo.infra.devops.customer.CustomerCreateInput;
import com.xiyu.service.vo.infra.devops.customer.CustomerPageQueryOutput;
import com.xiyu.service.vo.infra.devops.customer.CustomerPageQueryInput;
import java.util.*;
import com.xiyu.service.framework.web.web.core.pojo.PageResult;
import jakarta.servlet.http.HttpServletRequest;

/**
 * 客户管理 Service 接口
 */
public interface CustomerService {

    PageResult<CustomerPageQueryOutput> pageQuery(CustomerPageQueryInput inputVO);

    Long create(CustomerCreateInput inputVO);

    Boolean update(CustomerUpdateInput inputVO);

    Boolean deleted(Long id);

    CustomerSingleGetOutput singleGet(Long id);

    List<CustomerGetServerCustomerInfoOutput> getServerCustomerInfo(HttpServletRequest request, CustomerGetServerCustomerInfoInput inputVO);

    CustomerGetSingleCustomerInfoOutput getSingleCustomerInfo(CustomerGetSingleCustomerInfoInput inputVO);

    void init(Long id);

    void upgrade(CustomerUpgradeInput input);

}
